package com.ququ.syb.business.payment.fegin;

import com.ququ.common.result.ResultJson;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(name = "router")
public interface ChannelsRouterFegin {

    @RequestMapping(value = "/pay/wxali")
    ResultJson WechatAlipayUpopPay(@RequestParam(value = "accountid") String accountid,
                                   @RequestParam(value = "paychannelid") String paychannelid,
                                   @RequestParam(value = "tradenum") String tradenum,
                                   @RequestParam(value = "amount") Long amount,
                                   @RequestParam(value = "title") String title,
                                   @RequestParam(value = "userip") String userip,
                                   @RequestParam(value = "authcode") String authcode,
                                   @RequestParam(value = "openid") String openid,
                                   @RequestParam(value = "extparams") String extparams);


    @RequestMapping(value = "/pay/quick/sms")
    ResultJson quickPayApiSms(@RequestParam(value = "accountid") String accountid,
                              @RequestParam(value = "tradenum") String tradenum,
                              @RequestParam(value = "amount") Long amount,
                              @RequestParam(value = "title") String title,
                              @RequestParam(value = "desc") String desc,
                              @RequestParam(value = "paychannelid") String paychannelid,
                              @RequestParam(value = "paybankcardno") String paybankcardno,
                              @RequestParam(value = "mobile") String mobile,
                              @RequestParam(value = "name") String name,
                              @RequestParam(value = "idcardno") String idcardno,
                              @RequestParam(value = "expirydate") String expirydate,
                              @RequestParam(value = "cvv2") String cvv2,
                              @RequestParam(value = "extparams") String extparams);


    @RequestMapping(value = "/pay/quick/confirm")
    ResultJson quickPayApiSmsConfirm(@RequestParam(value = "accountid") String accountid,
                                     @RequestParam(value = "tradenum") String tradenum,
                                     @RequestParam(value = "paychannelid") String paychannelid,
                                     @RequestParam(value = "idcode") String idcode,
                                     @RequestParam(value = "extparams") String extparams);

    @RequestMapping(value = "/pay/quick/resend")
    ResultJson quickPayApiSmsResend(@RequestParam(value = "accountid") String accountid,
                                    @RequestParam(value = "tradenum") String tradenum,
                                    @RequestParam(value = "paychannelid") String paychannelid,
                                    @RequestParam(value = "extparams") String extparams);


    @RequestMapping(value = "/pay/quick/pay")
    ResultJson quickPayApiDirect(@RequestParam(value = "accountid") String accountid,
                                 @RequestParam(value = "tradenum") String tradenum,
                                 @RequestParam(value = "amount") Long amount,
                                 @RequestParam(value = "title") String title,
                                 @RequestParam(value = "desc") String desc,
                                 @RequestParam(value = "paychannelid") String paychannelid,
                                 @RequestParam(value = "paybankcardno") String paybankcardno,
                                 @RequestParam(value = "mobile") String mobile,
                                 @RequestParam(value = "name") String name,
                                 @RequestParam(value = "idcardno") String idcardno,
                                 @RequestParam(value = "expirydate") String expirydate,
                                 @RequestParam(value = "cvv2") String cvv2,
                                 @RequestParam(value = "extparams") String extparams);


    @RequestMapping("/pay/quick/wap")
    ResultJson quickPayWap(@RequestParam(value = "accountid") String accountid,
                           @RequestParam(value = "tradenum") String tradenum,
                           @RequestParam(value = "amount") Long amount,
                           @RequestParam(value = "title") String title,
                           @RequestParam(value = "desc") String desc,
                           @RequestParam(value = "paychannelid") String paychannelid,
                           @RequestParam(value = "paybankcardno") String paybankcardno,
                           @RequestParam(value = "mobile") String mobile,
                           @RequestParam(value = "name") String name,
                           @RequestParam(value = "idcardno") String idcardno,
                           @RequestParam(value = "expirydate") String expirydate,
                           @RequestParam(value = "cvv2") String cvv2,
                           @RequestParam(value = "extparams") String extparams);

    @RequestMapping("/refund")
    ResultJson refund(@RequestParam(value = "accountid") String accountid,
                      @RequestParam(value = "paychannelid") String paychannelid,
                      @RequestParam(value = "tradenum") String tradenum,
                      @RequestParam(value = "amount") Long amount,
                      @RequestParam(value = "extparams") String extparams);


    @RequestMapping("/pay/assure/pay")
    ResultJson payAssureConfirm(@RequestParam(value = "accountid") String accountid,
                                @RequestParam(value = "paychannelid") String paychannelid,
                                @RequestParam(value = "tradenum") String tradenum,
                                @RequestParam(value = "amount") Long amount,
                                @RequestParam(value = "divideinfo") String divideinfo);

}
